662 词
文章使用的是 Debian 11系统,防火墙是 UFW。 本人为新手,如有错误或不足之处,欢迎指正。 安装Fail2ban和UFW1apt install fail2ban ufw 配置Fail2ban和新建jail配置文件复制配置文件, fail2ban 会默认使用 jail.local。 1cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local 打开 jail.local 将以下两行修改为 ufw,以便fail2ban使用ufw防火墙来拦截 ip。 1vim /etc/fail2ban/jail.local jail.local1234567# 修改前banaction = iptables-multiportbanaction_allports = iptables-allports# 修改后banaction = ufw # 使用 ufw 来封禁 IP 地址banaction_allports = ufw # 使用 ufw 来封禁所有端口 新建jail配置文件并添加规则。 1vim /etc/fail2ban/jai...
2k 词
文章封面: Hello world by: アシマ / Ashima 本人为新手,如有错误或不足之处,欢迎指正。 分区表的概念使用哪种分区表决定了你可以创建多少分区和大小。 MBR 主引导记录(Master Boot Record)MBR 的优点是兼容性好,可以用于 BIOS 和 UEFI 启动模式,也可以和多种操作系统共存。 结构:MBR 是一个 512 字节的扇区,其中包含引导代码和分区表。 分区限制:MBR 支持最多 4 个主分区或 3 个主分区和一个扩展分区,每个主分区可以包含一个操作系统。 容量限制:MBR 最大支持 2TB 的硬盘。 GPT 全局唯一标识分区表(GUID Partition Table)GPT 的优点是更先进,更安全,更灵活,可以用于 UEFI 启动模式,也可以和多种操作系统共存,但不支持 BIOS 启动模式。 结构:GPT 使用 GUID(全局唯一标识符)标识分区表项,整个分区表存储在硬盘的开头和结尾,以提高可靠性。 分区限制:GPT 支持最多 128 个分区。每个分区都有唯一的 GUID 标识符,而不再受限于主分区和扩展分区的...
1.4k 词
文章封面: 水面 by: 鈍色玄 本人为新手,如有错误或不足之处,欢迎指正。 物理卷(PV)卷组(VG)和逻辑卷(LV) 在 Linux 的逻辑卷管理中,逻辑卷是建立在卷组之上的,而且一个逻辑卷只能拥有一个卷组,但卷组可以拥有多个逻辑卷。 卷组则是由一个或多个物理卷组成的。 因此,如果要创建逻辑卷,您需要先有物理卷和卷组。 注意:GFS2 或者 XFS 文件系统不支持缩小。 1apt-get install lvm2 # 安装 lvm 创建物理卷 创建物理卷,可以是硬盘也可以是分区 1pvcreate /dev/[硬盘或分区] 实例1pvcreate /dev/sde # 使用 sde 硬盘来创建物理卷 查看物理卷 这里的命令先选一个来用着,慢慢来。PS:物理卷、卷组和逻辑卷的命令基本相似,不用着急。 123pvs # 显示简要信息pvscan # 扫描所有物理卷(PV)并统计pvdisplay # 显示详细的物理卷(PV)信息 创建卷组 创建卷组必须使用物理卷 1vgcreate [卷组名称] /dev/[物理卷] 实例1vgcreate vg-1 /de...
928 词
文章封面: 崩坏学园 2/艾拉·苍墟之影 linux 的特殊权限分别为SUID,SGID,SBIT三个权限。 SUID 权限当可执行文件拥有SUID 权限,普通用户就可以,以文件所有者的权限来执行该文件,从而临时获得特定权限。如果所有者是root用户,它将具有与 root 用户相同的特权级别,可以执行只有 root 用户才能执行的操作。 被赋予SUID 权限的文件会变成红色的,文件属性的所有者权限会变成 rws 而不是 rwx。 普通用户就可以,以root用户的权限使用该命令。 移出了SUID 权限,普通用户就无法访问root目录的文件了。 注意:千万不要将 SUID 权限赋予 vim、cat、rm 等命令上面!!!可能会引发潜在的安全风险。 SGID 权限SGID 权限可以应用于可执行文件和目录,不过这次是只获得组的权限。 可执行文件:可以让使用者临时获得,文件所属组的权限。 目录:会影响在该目录下新创建的文件或子目录,可以自动继承该目录的组身份。 SGID 权限针对可执行文件:赋予 SGID 权限后文件会变为黄色,文件所属组的权限会变成 r-s 不是 r...
2.6k 词
文章封面: 无题 by: Mada 文章使用的是 Debian 12和CentOS-Stream 8系统。 注:Debian 12和CentOS-Stream 8安装的依赖不同,其他安装的方法是一样的。 本人为新手,如有错误或不足之处,欢迎指正。 准备工作Debian 12: 先安装一个叫aptitude的管理软件包工具,这个工具可以对依赖关系的更好的处理能力,就是安装依赖包更方便。 123apt-get update && apt-get upgradeapt-get install aptitude && aptitude updateaptitude upgrade 安装依赖 1aptitude install gcc make libpcre3 libpcre3-dev zlib1g zlib1g-dev openssl libssl-dev libaio1 libaio-dev pkg-config libxml2 libxml2-dev sqlite3 libsqlite3-dev libonig-dev libjemalloc-...
896 词
配置文件的构成systemd 配置文件由三个部分组成:[Unit]、[Service] 和 [Install]。 [Unit]1234[Unit]Description=nginx - high performance web server # 服务描述。Documentation=http://nginx.org/en/docs/ # 该服务的文档地址。After=network.target # 在network.target服务启动后,启动。 Description:服务的简短描述。 Documentation:服务文档的说明。 After:指定在那个服务之后启动。 [Service]1234567891011[Service]Type=forking # 以子进程方式启动。PIDFile=/usr/local/nginx/logs/nginx.pid # 进程的 id。ExecStart=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf # 启动 nginx 并指定配置文件。ExecSta...
605 词
文章封面: last bride by: YOAFERIA chmod 是一个修改文件或文件夹权限的命令。它将为所有用户(文件所有者、同组用户和其他用户)添加读写和执行的权限。 文件权限示例12345- rwx rwx rwx # 原始权限 | | | | | +-- 其他用户权限 | +------ 同组用户权限 +---------- 文件所有者权限 每一位权限字符都有特定的含义: r 表示读权限 w 表示写权限 x 表示执行权限 - 表示没有对应权限 所以,如果一个文件权限是 rw-r–r–,表示文件所有者具有读写权限,同组用户和其他用户只有读权限。 下面是一些常见的文件权限示例及其对应的字符表示: rwxr-xr-x : 755 rw-rw-r-- : 664 rwx------ : 700 rw-r--r-- : 644 rwxrwxrwx : 777 chmod 命令的语法1chmod [权限] 文件名/目录名 其中,[权限] 表示你想要为文件或目录设置的新权限,可以使用数字模式或符号模式来表示权限。具体用法如下: 数字...
525 词
名词 循环(loop),指的是在满足条件的情况下,重复执行同一段代码。比如,while 语句。 迭代(iterate),指的是按照某种顺序逐个访问列表中的每一项。比如,for 语句。 递归(recursion),指的是一个函数不断调用自身的行为。比如,以编程方式输出著名的斐波纳契数列。 遍历(traversal),指的是按照一定的规则访问树形结构中的每个节点,而且每个节点都只访问一次。 名词引用: python 在线手册 by: PythonTab 现在只学迭代的基本 iter生成迭代器(可迭代的变量) 语法:iter(object) object 是一个可迭代对象,可以是列表、字符串、字典等。 1234from collections.abc import Iterable # 导入可迭代的类型Iterable,来判断是否可以迭代。a = iter([1, 2, 3, 4, 5])print(isinstance(a, Iterable)) # True next语法:next(iterator, default) iterator:从中检索下一个项目的迭代器。 d...
471 词
抽象的概念模块:每个模块都是一个Python文件(.py),它包含了一些相关的函数和变量。包:它包含了多个模块。每个包都是一个目录(文件夹),该目录下有一个__init__.py文件和一些模块文件或者子包。为什么导入包也可以使用模块呢? 因为在导入该包的时候会自动执行__init__.py 文件。这个文件负责处理包的初始化操作,包括导入包中的模块或其他的模块(嵌套)。 import …语法:import [模块名]12import random # 导入整个"random"模块,包括函数、变量等。print(random.randint(1, 10)) # 生成 1~10 随机的整数。 注意函数的前面要带有模块名,这种方法避免了命名冲突。 import … as …语法:import [模块名] as [别名]12import random as ran # 只是换了一个名字。print(ran.randint(1, 10)) # 作用是一样的。 简化模块名了。 from … import …语法:from [模块] import [函数]说明:从...
427 词
语法zip(*iterables)enumerate(iterable, start=0) 参数说明如下: iterables:一个或多个可迭代对象,如列表、元组、字符串等。 iterable:一个可迭代对象,如列表、元组、字符串等。 start(可选):下标起始位置的值,默认为 0。 返回值 zip:返回一个迭代器,每个元素都是一个元组,由输入的可迭代对象在相同位置上的元素组成。 使用时需要注意:zip 函数会以最短的可迭代对象的长度为准进行合并,以最短合并 多的不要。 enumerate:返回一个迭代器,每个元素都是一个包含索引和对应元素的元组。 使用比如:我们有这些变量 1234string = "ABCDEF" # 字符串arr = [1, 2, 3, 4, 5] # 数组fruits = ("apple", "banana", "cherry") # 元组person = {"name": "Alice", "age&...